1. Field of the Invention
The present invention relates generally to a system and a method for dynamically adjusting data compression parameters during transmission of data over a network.
2. Background Art
Communication networks are used to transfer information such as data, voice or video information, between communication devices such as packet telephones, computer terminals, multimedia workstations, and videophones, connected to the network. Data compression systems, which encode a digital data stream into compressed digital code signals, and which decode the compressed digital code signals back into the original data, are known in the art. The methods utilized in data compression systems serve to reduce the amount of storage space required to hold the digital information and/or result in a savings in the amount of time required to transmit a given amount of information.
Various methods and systems are known in the art for compressing and subsequently reconstituting, or decompressing data. For example, a compression scheme used widely on the Internet today is “gzip,” designed by Jean-Loup Gailly. Gzip utilizes a variation of the well-known LZ77 (Lempel-Ziv 1977) compression technique, which replaces duplicated strings of bytes within a frame of a pre-defined distance with a pointer to the original string. Gzip also uses Huffman coding on the block of bytes and stores the Huffman code tree with the compressed data block. Gzip normally achieves a compression ratio of about 2:1 or 3:1, the compression ratio being the size of the uncompressed text relative to the size of the compressed text. The zlib library permits compression using the “deflate” method that is also used in the gzip algorithm.
While conventional systems effectively select an appropriate initial compression algorithm for a given media type to produce satisfactory compression, conventional communication systems do not dynamically adjust the compression scheme for a given connection based an entire range of possible factors that can affect selection of an optimum compression scheme. As is apparent from the above-described deficiencies with conventional communication systems, a need exists for a communication system that permits the compression, transferring and decompression scheme to be dynamically adjusted in response to processing power of processors, server resources, speed of data compression, type of data being transmitted and real-time network conditions. The examples of the network conditions are noise or congestion on the line.